#include <sfv/csr_matrix.h>
#include <sfv/print.h>

#include <sfv/layout/DrlLayout.h>
#include <sfv/gallery/forestfire.h>

int main(void) {
	sfv::csr_matrix<int, float> A;
	sfv::gallery::forest_fire_game(A, 100, 0.8, 0.8, 80);

	sfv::layout::drl_options options;

	options.init_iterations = 0;
	options.init_temperature = 2000;
	options.init_attraction = 10;
	options.init_damping_mult = 1.0;

	options.liquid_iterations = 200;
	options.liquid_temperature = 2000;
	options.liquid_attraction = 10;
	options.liquid_damping_mult = 1.0;

	options.expansion_iterations = 200;
	options.expansion_temperature = 2000;
	options.expansion_attraction = 2;
	options.expansion_damping_mult = 1.0;

	options.cooldown_iterations = 200;
	options.cooldown_temperature = 2000;
	options.cooldown_attraction = 1;
	options.cooldown_damping_mult = .1;

	options.crunch_iterations = 50;
	options.crunch_temperature = 250;
	options.crunch_attraction = 1;
	options.crunch_damping_mult = 0.25;

	options.simmer_iterations = 100;
	options.simmer_temperature = 250;
	options.simmer_attraction = .5;
	options.simmer_damping_mult = 0;

	sfv::array1d<float> weights;

	sfv::layout::DrlLayout Drl(A, options, weights);

	Drl.draw_graph();

	return 0;
}
